1000 *=$C000 1010 ! 1020 ! THIS CODE READS IN TRACK 18, SECTOR 1 1030 ! AND STORES THE 256 BYTES AT $CF00 ONWARDS 1040 ! 1050 ! WRITTEN BY JASON FINCH 1991 1060 ! 1070 ! 1080 (null)LFS = $FFBA ;_ SET FILE DETAILS 1090 (null)NAM = $FFBD ;_ SET FILE NAME 1100 OPEN = $FFC0 ;_ OPEN LOGICAL FILE 1110 CLOSE = $FFC3 ;_ CLOSE LOGICAL FILE 1120 CHKIN = $FFC6 ;_ OPEN CHANNEL FOR INPUT 1130 CHKOUT = $FFC9 ;_ OPEN CHANNEL FOR OUTPUT 1140 CLRCHN = $FFCC ;_ CLOSE INPUT AND OUTPUT CHANNELS 1150 CHRIN = $FFCF ;_ INPUT CHARACTER FROM CHANNEL 1160 WRITECMD = $AB1E ;_ SET-UP COMMAND READY TO SEND 1170 SEND = $ABB5 ;_ SEND COMMAND (EQUIV. OF PRINT# STATEMENT) 1180 ! 1190 ! 1200 LDA #$02;_ 2 CHAR FILE NAME 1210 LDX #I0 1230 JSR (null)NAM;_ SET THE FILE NAME 1240 ; 1250 LDA #$0F;_ OPEN 15, 1260 LDX #$08;_ 8, 1270 LDY #$0F;_ 15 1280 JSR (null)LFS;_ SET THESE PARAMETERS 1290 JSR OPEN;_ OPEN 15,8,15,"I0" 1300 ; 1310 BCS ERROR;_ DISK ERROR 1320 ; 1330 LDA #$01;_ 1 CHAR FILE NAME 1340 LDX #HASH; 1360 JSR (null)NAM;_ SET THE FILE NAME 1370 ; 1380 LDA #$02;_ OPEN 2, 1390 LDX #$08;_ 8, 1400 LDY #$02;_ 2 1410 JSR (null)LFS;_ SET THESE PARAMETERS 1420 JSR OPEN;_ OPEN 2,8,2,"#" 1430 ; 1440 LDX #$0F 1450 JSR CHKOUT;_ LOGICAL FILE 15 IS AN OUTPUT CHANNEL 1460 ; 1470 LDA #COMMAND; 1490 JSR WRITECMD;_ GET IT READY TO SEND 1500 JSR SEND;_ DO EQUIV. OF PRINT# COMMAND IN BASIC 1510 ; 1520 LDX #$02 1530 JSR CHKIN;_ PREPARE FOR INPUT FROM LOGICAL FILE 2 (THE BUFFER) 1540 ; 1550 LDY #$00;_ RESET OFFSET 1560 LP1 JSR CHRIN;_ GET A CHARACTER FROM THE INPUT CHANNEL (BUFFER) 1570 STA $CF00,Y;_ STORE THE CHARACTER AT $CF00- 1580 INY;_ INCREASE OFFSET 1590 BNE LP1;_ IF ALL 256 NOT DONE, GO BACK FOR MORE 1600 ; 1610 LDA #$02 1620 JSR CLOSE;_ CLOSE LOGICAL FILE 2 1630 ; 1640 LDA #$0F 1650 JSR CLOSE;_ AND CLOSE 15 1660 ; 1670 JSR CLRCHN;_ RESET THE I/O CHANNELS 1680 ; 1690 RTS;_ BACK TO BASIC WITH THE RIGHT INFORMATION STORED, HOPEFULLY! 1700 ! 1710 ! 1720 ! 1730 ERROR ; 1740 ; 1750 LDA #$0F 1760 JSR CLOSE;_ CLOSE 15 1770 ; 1780 JSR CLRCHN;_ RESET I/O CHANNELS 1790 ; 1800 RTS;_ RETURN TO BASIC - DEVICE NOT PRESENT 1810 ! 1820 ! 1830 ! THE FOLLOWING ARE THE DIFFERENT 1840 ! FILENAMES AND THE COMMAND 1850 ! 1860 ! COPY EXACTLY OR THIS METHOD 1870 ! WILL NOT WORK 1880 ! 1890 ! 1900 I0 BYT "I0";_ THIS IS SENT TO INITIALISE THE DRIVE 1910 ; 1920 HASH BYT "#";_ THE FILE NAME FOR THE BUFFER 1930 ; 1940 COMMAND BYT "U1:2 0 18 01",0;_ NOTE THE ',0' AT THE END - IT IS VITAL 1950 ; 1960 ! THE '0' IS A ZERO BYTE - NOT THE ASCII VALUE FOR '0' 1970 ! IT TELLS THE COMPUTER WHERE THE END OF THE COMMAND LIES